<?php
namespace app\admin\controller;
use app\common\controller\Adminbase;
use \think\Loader;

// +----------------------------------------------------------------------
// | XpCms
// +----------------------------------------------------------------------
// | Copyright (c) 2021-2099
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Mercurio（Xp） <725668993@qq.com>
// +----------------------------------------------------------------------

/*
** 文章分类 控制器
*/

class Friendlink extends Adminbase {
	private static $_friendlink = null; // 数据表对象
	
	// 优先加载
	public function _initialize() {
		parent::_initialize();
		
		// 实例化数据表模型
		self::$_friendlink = Loader::model('Friendlink');
		
	}
	
	// 分类列表
	public function index() {
		
		// 当前页
		$nowPage = 1;
		if(isset($_GET['page']) && $_GET['page']){
			$nowPage = input('param.page/d');
			$nowPage = $nowPage > 0 ? $nowPage : 1;
		}
		
		$where = array();
		
		if(input('param.keyword')){
		    $keyword = input('param.keyword');
		    $this -> assign('keyword', $keyword);
		    $where['name|link']=array('like','%'.$keyword.'%');
		}
		
		// 每页显示条数，默认 10 条
		$pagesize=input('param.page_size')?input('param.page_size'):10;
		$this -> assign('pagesize', pagesize($pagesize));
		
		$lists = self::$_friendlink -> friendlinkLists($where, $nowPage, $pagesize);
		
		$this -> assign('friendlinklists', $lists['lists']);
		$this -> assign('page', $lists['page']);
		return view('index');
	}
	
	// 新增友链页面
	public function add() {
		
		return view('add');
	}
	
	// 保存新增分类
	public function addsave() {
		
		$inputs = input('post.');
		
// 		// 使用模型验证器进行验证
// 		$result = $this -> validate($inputs, 'Friendlink.add');
// 		if(true !== $result){
// 			// 验证失败 输出错误信息
// 			$this -> error($result);
// 		}
		
		// 验证新增数据 name 是否重复
		$this -> checkNameAdd($inputs);
		$inputs['create_time'] = time();
		
		// 保存数据
		if(self::$_friendlink -> data($inputs) -> save()){
			$this -> success('操作成功','index');
		}
		
		$this -> error('操作失败');
	}
	
	// 编辑分类页面
	public function edit() {
		
		$id = input('param.id/d');
		if(!$id){
			$this -> error('参数错误');
		}
		
		$lists = self::$_friendlink -> getFriendlinkDetail($id);
		if(!$lists){
			$this -> error('参数错误');
		}
		
		$this -> assign('lists', $lists);
		return view('add');
	}
	
	// 保存编辑分类
	public function editsave() {
		
		$inputs = input('post.');
		
		$id = (int) $inputs['id'];
		if(!$id){
			$this -> error('参数错误');
		}
		
// 		// 使用模型验证器进行验证
// 		$result = $this -> validate($inputs, 'Friendlink.edit');
// 		if(true !== $result){
// 			// 验证失败 输出错误信息
// 			$this -> error($result);
// 		}
		
		$find = self::$_friendlink -> where(array('id' => $id)) -> value('id');
		if(!$find){
			$this -> error('参数错误');
		}
		
		// 验证更新数据 name 是否重复
		$this -> checkNameUpdate($inputs);
		unset($inputs['id']);
		
		// 保存数据
		if(self::$_friendlink -> save($inputs, array('id' => $id))){
			$this -> success('操作成功','index');
		}
		
		$this -> error('操作失败或没有数据可更新');
	}
	
	// 编辑友链状态
	public function editstatus() {
		
		$id = input('post.id/d');
		if(!$id){
			return ['error'=>1,'msg'=>'参数错误'];
		}
		
		$result = self::$_friendlink -> editStatus($id);
		if($result){
			return ['error'=>0,'msg'=>'操作成功'];
		}
		return ['error'=>1,'msg'=>'操作失败'];
	}
	
	// 删除分类
	public function deletes() {
		
		$id = input('post.id/d');
		if(!$id){
			return ['error'=>1,'msg'=>'参数错误'];
		}
		
		$result = self::$_friendlink -> deletes($id);
		if($result['status'] == 1){
			return ['error'=>0,'msg'=>'删除成功'];
		}
		return ['error'=>1,'msg'=>$result['msg']];
	}
	
	//批量删除友链
    public function selectDel(){
        $id = input('post.id');
        if(!$id){
			return ['error'=>1,'msg'=>'ID不存在'];
		}
		$ids = explode(',', $id);
		for ($i = 0; $i < count($ids); $i++) {
	        if($ids[$i] !== 1){
	            self::$_friendlink -> deletes($ids[$i]);
	        }
    	}
		return ['error'=>0,'msg'=>'删除成功!'];
    }
	
	//友链排序
    public function sort(){
        $id = input('post.id/d');
        $sort = input('post.sort/d');
		if(!$id){
			return ['error'=>1,'msg'=>'ID不存在'];
		}
		if(self::$_friendlink -> save(array('sort'=> $sort), array('id' => $id))){
			return ['error'=>0,'msg'=>'修改成功!'];
		}
    }
	
	// 验证新增数据 name 是否重复添加
	private function checkNameAdd($data) {
		$checkData = array('name' => $data['name']);
		$find = self::$_friendlink -> where($checkData) -> find();
		if($find){
			$this -> error('同样的记录已经存在');
		}
		return true;
	}
	
	// 验证更新数据 name 是否重复添加
	private function checkNameUpdate($data) {
		
		$checkData = array('name' => $data['name']);
		$find = self::$_friendlink -> where($checkData) -> value('id');
		
		if($find && $find != $data['id']){
			$this -> error('同样的记录已经存在');
		}
		return true;
	}
	
}
